home *** CD-ROM | disk | FTP | other *** search
- unit ddovr;
- {$O+,F+,V-}
-
- interface
-
- uses crt;
-
- {procedure showhelp;}
-
- procedure GetBBSInfo(
- bbstype: word;
- var user_first_name,user_last_name: string;
- var user_access_level: word;
- var bbs_time_left: integer;
- var com_port: byte;
- var baud_rate : Longint;
- var node_num: byte;
- var local: boolean;
- var graphics: byte;
- var color1: boolean;
- var color_chg: boolean;
- var board_name: string;
- var sysop_first_name: string;
- var sysop_last_name: string;
- var maxtime: word;
- var dropfilepath: string;
- var lockbaud: LongInt);
-
- procedure MakeInfoStrings(
- bbstype: word;
- var user_first_name,user_last_name: string;
- var user_access_level: word;
- var bbs_time_left: integer;
- var com_port: byte;
- var baud_rate,baud_modem: longint;
- var node_num: byte;
- var local: boolean;
- var graphics: byte;
- var color1: boolean;
- var color_chg: boolean;
- var board_name: string;
- var sysop_first_name: string;
- var sysop_last_name: string;
- var maxtime: word;
- var dropfilepath: string;
- var lockbaud: longint);
-
- const
- numddovrstr=11;
- type
- ddovrstrptr=^string;
- ddovrstrarray=array[1..numddovrstr] of ddovrstrptr;
- var
- ddovrinfo: ddovrstrarray;
-
- implementation
-
- procedure GetBBSInfo(
- bbstype: word;
- var user_first_name,user_last_name: string;
- var user_access_level: word;
- var bbs_time_left: integer;
- var com_port: byte;
- var baud_rate: LongInt;
- var node_num: byte;
- var local: boolean;
- var graphics: byte;
- var color1: boolean;
- var color_chg: boolean;
- var board_name: string;
- var sysop_first_name: string;
- var sysop_last_name: string;
- var maxtime: word;
- var dropfilepath: string;
- var lockbaud: LongInt);
-
- type
-
- char2 = array[1..2] of char;
- char4 = array[1..4] of char;
- char5 = array[1..5] of char;
- char8 = array [1..8] of char;
- char9 = array [1..9] of char;
- char12 = array[1..12] of char;
- char13 = array [1..13] of char;
- char15 = array[1..15] of char;
- char25 = array[1..25] of char;
- single = array [0..3] of byte;
- bitmap = record
- bits : array [0..4] of byte;
- end;
-
- basic_real_type = array[1..4] of char;
-
- {layout of the PCBOARD12.SYS file while doors are open}
-
- pcb_sys_rec12 = record
- display: char2; {display on console? -1 or 0}
- printer: char2; {print log? -1 or 0}
- page_bell: char2; {bother sysop? -1 or 0}
- alarm: char2; {caller alarm sound? -1 or 0}
- sysop_next: char2; {force sysop on next? 'N ', 'X ' or ' '}
-
- baud: array [1..4] of char; {caller's baud rate}
- name: char25; {caller's name}
- xpert: char; {pcb/pro's own expert flag}
- nulls: char; {pcb/pro's own nulls flag}
- firstname: array [1..15] of char; {caller's first name}
- graphics: char2; {ansi graphics mode? '-1',' 0', or '7E'}
- password: array [1..12] of char; {caller's password (last 2 chars redef'd}
- usernum: integer; {record number in user file}
- time_on: Basic_real_type;
- time_limit: Basic_real_type;
- open_time: Basic_real_type;
- time_logged: array [1..5] of char; {time the user logged on in hh:mm}
- conference: integer; {active conference when door opened}
- joined: array[1..9] of integer;
- {0 or -1 for conferences joined}
- time_added: integer; {highest conference added time in mins}
- down_limit: array[1..8] of char;
- upload_credit: integer; {upload time credit so far that call}
-
- slanguage: array [1..4] of char; {language version used, blank, .FRE etc}
- errcheck: char2; {error check/correcting modem? -1 or 0}
- nodechat: char; {node chat flag prior to exit to DOS}
- end;
-
- var
- pcbsys: pcb_sys_rec12;
-
- function wva(a: word): string;
- var
- s: string;
- begin;
- str(a,s);
- wva:=s;
- end;
-
- Function In36(Num : word) : String;
- const
- Array36 : array[0..35] of Char = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
- var
- ch:char;
- begin
- ch:='1';
- if num in [0..35] then
- ch:=Array36[num+1];
- In36:=ch;
- end;
-
- function w36(a: word): string;
- var
- s: string;
- begin;
- case a of
- 10..35 : s:=in36(a);
- else
- str(a,s);
- end;
- w36:=s;
- end;
-
- function stu(s: string): string;
- var
- a: integer;
- begin;
- for a:=1 to length(s) do s[a]:=upcase(s[a]);
- stu:=s;
- end;
-
- procedure DDError(s: string);
- begin;
- write(^G^G);
- writeln('ERROR: '+s);
- write(^G^G);
- delay(2000);
- halt;
- end;
-
- function basic_real(breal: basic_real_type): real;
- type
- atmp=array[1..6] of char;
- var
- dummy: real;
- x: atmp absolute dummy;
- begin;
- x[1]:=breal[4];
- x[2]:=#0;
- x[3]:=#0;
- x[4]:=breal[1];
- x[5]:=breal[2];
- x[6]:=breal[3];
- basic_real:=int(dummy);
- end;
-
- procedure get_pcbsys_file;
- var
- fd: file of pcb_sys_rec12;
- begin
- assign(fd,dropfilepath+'PCBOARD.SYS');
- {$i-} reset(fd); {$i+}
- if ioresult <> 0 then begin;
- dderror('Can''t read system file PCBOARD.SYS');
- halt;
- end;
- read(fd,pcbsys);
- close(fd);
- end;
-
- function pcboard_time_left: byte;
- var
- tl: integer;
- time_used: real;
- time_left: real;
- begin;
- time_used:=basic_real(pcbsys.open_time)-basic_real(pcbsys.time_on);
- time_left:=basic_Real(pcbsys.time_limit)-(time_used);
- tl:=round(time_left/60);
- if tl>255 then tl:=255;
- pcboard_time_left:=tl;
- end;
-
- procedure GetPcb14(var fname,lname: string; var comport,graphics,tleft: integer;
- var baud :longint);
- Type
- {layout of the PCBOARD14.SYS file while doors are open}
- {
- Offset Type Length Description
- ------ ------ ------ -----------
- 0 str 2 Display On/Off ("-1" = On, " 0" = Off)
- 2 str 2 Printer On/Off ("-1" = On, " 0" = Off)
- 4 str 2 Page Bell On/Off ("-1" = On, " 0" = Off)
- 6 str 2 Caller Alarm On/Off ("-1" = On, " 0" = Off)
- 8 char 1 Sysop Flag (" ", "N"=sysop next, "X"=exit dos)
- 9 str 2 Error Corrected ("-1" = On, " 0" = Off)
- 11 char 1 Graphics Mode ('Y'=yes, 'N'=no, '7'=7E1)
- 12 char 1 Node Chat Status ('A'=available, 'U'=unavailable)
- 13 str 5 DTE Port Speed (PC to Modem speed)
- 18 str 5 Connect Speed shown to caller or "Local"
- 23 int 2 User's Record Number in the USERS file
- 25 str 15 User's First Name (padded to 15 characters)
- 40 str 12 User's Password (padded to 12 characters)
- 52 int 2 Time User Logged On (in minutes since midnight)
- 54 int 2 Time used so far today (negative number of minutes)
- 56 str 5 Time User Logged On (in "HH:MM" format)
- 61 int 2 Time Allowed On (from PWRD file) (see note 1 below)
- 63 int 2 Allowed K-Bytes for Download (see note 2 below)
- 65 char 1 Conference Area user was in (if <= 255)
- 66 bitmap 5 Conference Areas the user has joined this session
- 71 bitmap 5 Conference Areas the user has scanned this session
- 76 int 2 Conference Add Time in minutes
- 78 int 2 Upload/Sysop CHAT Credit Minutes (see note 3 below)
- 80 str 4 Language Extension (see note 4 below)
- 84 str 25 User's Full Name (padded to 25 characters)
- 109 int 2 Calculated Minutes Remaining (see note 5 below)
- 111 char 1 Node Number (or ' ' if no network)
- | 112 str 5 Event Time (in "HH:MM" format, "00:00" if no event)
- | 117 str 2 Is Event Active ("-1" = On, " 0" = Off) (see note 7)
- | 119 str 2 Reserved (was Slide Event, no longer used here)
- 121 bsreal 4 Memorized Message Number
- 125 char 1 Comm Port Number (0=none, 1-8)
- 126 char 1 Reserved for PCBoard
- | 127 bitmap 1 See Node 8 below for details
- 128 char 1 Use ANSI (1 = Yes, 0 = No)
- | 129 int 2 Country Code
- | 131 int 2 Code Page
- | 133 char 1 YES character
- | 134 char 1 NO character
- | 135 char 1 Language 0=None, otherwise correspond with PCBML.DAT
- | 136 char 3 RESERVED
- 139 char 1 Caller Exited to DOS (1 = Yes, 0 = No)
- | 140 char 1 RESERVED (was Event Up Coming, no longer used)
- 141 char 1 Stop Uploads (1 = Yes, 0 = No)
- 142 int 2 Conference Area user was in (up to 65535)
- 144 bitmap varies High Conference Areas the user has joined (note 6)
- varies bitmap varies High Conference Areas the user has scanned (note 6)
- | variees int 2 Node Number if offset 111 is set to 255, seek to
- the end of the file, minus 2, to read this value
- }
- pcb_sys_rec14 = record
- {1 } display: char2; {display on console? -1 or 0}
- {3 } printer: char2; {print log? -1 or 0}
- {5 } page_bell: char2; {bother sysop? -1 or 0}
- {7 } alarm: char2; {caller alarm sound? -1 or 0}
- {9 } sysop_next: char; {force sysop on next? 'N', 'X' or ' '}
-
- case integer of
- 1: (
- {10 } errcheck: char2; {error check/correcting modem? -1 or 0}
- {12 } graphics: char; {ansi graphics mode? 'Y','N','7'}
- {13 } nodechat: char; {node chat status 'U' or 'A'}
- {14 } openbps: char5; {BPS rate to open modem port at}
- {19 } connectbps: char5; {BPS connect rate or 'Local'}
- {24 } usernum: integer; {record number in user file}
- {26 } firstname: char15; {caller's first name}
- {41 } password: char12; {caller's password}
- {53 } time_on: integer; {when the user logged on in MINUTES}
- {55 } prev_used: integer; {minutes used in prev calls today, <0}
- {57 } time_logged: char5; {hh:mm time the user logged on}
- {62 } time_limit: integer; {maximum minutes allowed from PWRD}
- {64 } down_limit: integer; {daily download limit/1024 from PWRD}
- {66 } curconf: byte; {active conference when door opened}
- {67 } joined: bitmap; {areas user has been in}
- {72 } ydone: bitmap; {areas user has done 'Y' on}
- {77 } time_added: integer; {highest conference added time in mins}
- {79 } time_credit: integer; {upload/chat time credit in minutes}
- {81 } slanguage: char4; {language used, blank, .FRE etc}
- {85 } name: char25; {caller's full name}
- {110} sminsleft: integer; {minutes left when door opened}
- {112} snodenum: byte; {current node number}
- {113} seventtime: char5; {hh:mm event time}
- {118} seventactive: char2; {event time active? "-1" or "0 "}
- {120} sslide: char2; {slide event? "-1" or " 0"}
- {122} smemmsg: single; {memorized message number}
- {126} scomport: char; {com port number '0','1','2'}
- {127} resv99: char; {filler UNDOCUMENTED}
- {128} bitmap: byte; {rip is bit $02 }
- {record size: 128}
- );
-
- 2: (
- offline_filler: array[1..119] of char {filler, spaces}
- );
- end;
-
- VAR
- pcbfile : file;
- pcb14 : pcb_sys_rec14;
- qbbsout : text;
- filname : string[8];
- lastname : string[20];
- graph : integer;
- sys_name,sysopfirst,sysoplast : string[30];
- a,b,i : integer;
- c : char;
- s: string;
- Name : String[25];
- GM : String[2];
-
- Begin
- Assign(PCBFile,dropfilepath+'PCBoard.Sys');
- {$I-}
- Reset(PCBFile);
- {$I+}
- If (IOResult<>0) Then dderror('... Unable to open pcboard.sys file...');
- BlockRead(PCBFile,PCB14,1);
- Close(PCBFile);
- Name:=pcb14.name;
- FName:=pcb14.firstname;
- LName:=Copy(Name,Pos(' ',Name)+1,Length(Name));
- { If (Data[23]=' ') Then Data[23]:='.'; }
- s:='';
- s :=s+Pcb14.SComPort;
- Val(s,ComPort,I);
- s:='';
- for a:= 1 to 5 do
- s:=s+Pcb14.openbps[a];
- while s[length(s)]=' ' do delete(s,length(s),1);
- val(s,baud,i);
- If PCB14.connectbps='Local' then
- baud:=0;
- If (baud=0) Then ComPort:=0;
-
- Case Pcb14.graphics of
- 'Y': begin
- Graphics:=2;
- end;
- 'N': begin
- Graphics:=0;
- end;
- '7': begin
- Graphics:=0;
- end;
- End; {Case}
- If BBStype = 6 then
- If (PCB14.Bitmap And $02 = $02) then
- Graphics := 4;
- TLeft:=pcb14.sminsleft;
- while ((fname[1]=#0) or (fname[1]=#32)) and (length(fname)>1) do delete(fname,1,1);
- while ((fname[length(fname)]=#0) or (fname[length(fname)]=#32)) and (length(fname)>1) do delete(fname,length(fname),1);
- while ((lname[1]=#0) or (lname[1]=#32)) and (length(lname)>1) do delete(lname,1,1);
- while ((lname[length(lname)]=#0) or (lname[length(lname)]=#32)) and (length(lname)>1) do delete(lname,length(lname),1);
- for a:=1 to length(fname) do fname[a]:=upcase(fname[a]);
- for a:=1 to length(lname) do lname[a]:=upcase(lname[a]);
- end;
-
- procedure load_rbbs16;
- var
- fd: text;
- a,b: integer;
- info_num:byte;
- s,s2: string;
- begin
- If BBStype in [3,9] then color1 := true;
- info_num:=node_num;
- If BBStype=9 then info_num:=1;
- assign(fd,dropfilepath+'DORINFO'+w36(info_num)+'.DEF');
- {$i-}
- reset(fd);
- {$i+}
- if ioresult <> 0 then dderror('Can''t open DORINFO'+w36(info_num)+'.DEF');
- local:=false;
- readln(fd,s);
- readln(fd,s);
- readln(fd,s);
- readln(fd,s);
- val(s[4],com_port,a);
- if com_port=0 then local:=true;
- readln(fd,s);
- s2:='';
- s:=stu(s);
- for a:=1 to pos('BAUD',s)-2 do s2:=s2+s[a];
- if s2[1]=' ' then delete(s2,1,1);
- val(s2,baud_rate,a);
- if (stu(s2)='LOCA') or (stu(s2)='LOCAL') then local:=true;
- if baud_rate=0 then local:=true;
- readln(fd,s);
- readln(fd,user_first_name);
- readln(fd,user_last_name);
- readln(fd,s);
- readln(fd,s);
- if s[1]=' ' then delete(s,1,1);
- while s[length(s)]=' ' do delete(s,length(s),1);
- val(s,graphics,a);
- inc(graphics);
- if color1 then inc(graphics);
- readln(fd,s);
- if s[1]=' ' then delete(s,1,1);
- while s[length(s)]=' ' do delete(s,length(s),1);
- val(s,user_access_level,a);
- readln(fd,s);
- if s[1]=' ' then delete(s,1,1);
- while s[length(s)]=' ' do delete(s,length(s),1);
- val(s,bbs_time_left,a);
- close(fd);
- user_first_name:=stu(user_first_name);
- user_last_name:=stu(user_last_name);
- end;
-
- procedure Load_pcboard14;
- var
- tleft,com,graph: integer;
- baud : longint;
- begin;
- getpcb14(user_first_name,user_last_name,com,graph,tleft,baud);
- com_port:=com;
- baud_rate:=baud;
- graphics:=graph;
- bbs_time_left:=tleft;
- user_access_level:=50;
- inc(graphics);
- if (baud_rate=0) or (com_port=0) then local:=true else local:=false;
- end;
-
- procedure load_pcboard;
- var
- a: integer;
- b: boolean;
- ton,toff: real;
- begin;
- user_access_level:=0;
- local:=false;
- get_pcbsys_file;
- b:=false;
- user_first_name:='';
- user_last_name:='';
- for a:=1 to 25 do if (pcbsys.name[a]=' ') or (pcbsys.name[a]=#0) then b:=true else if b=false then
- user_first_name:=user_first_name+pcbsys.name[a] else user_last_name:=user_last_name+pcbsys.name[a];
- baud_rate:=300;
- if (pcbsys.baud[1]='1') and (pcbsys.baud[2]='2') then baud_rate:=1200;
- if pcbsys.baud[1]='2' then baud_rate:=2400;
- if pcbsys.baud[1]='4' then baud_rate:=4800;
- if pcbsys.baud[1]='9' then baud_rate:=9600;
- if (pcbsys.baud[1]='1') and (pcbsys.baud[2]='9') then baud_rate:=19200;
- if pcbsys.baud[1]='L' then local:=true;
- if pcbsys.graphics[2]='0' then graphics:=1 else graphics:=3;
- bbs_time_left:=pcboard_time_left;
- user_first_name:=stu(user_first_name);
- user_last_name:=stu(user_last_name);
- end;
-
- procedure load_phnx;
- var
- f : text;
- s : string;
- code,i: integer;
- b : boolean;
- a: integer;
- begin;
- assign(f,dropfilepath+'info.bbs');
- writeln('Opening file "info.bbs"');
- {$I-}
- reset(f);
- {$I+}
- if ioresult<>0 then dderror('Error in opening "info.bbs"');
- readln(f,s);
- b:=false;
- user_first_name:='';
- user_last_name:='';
- for a:=1 to 25 do if (pcbsys.name[a]=' ') or (pcbsys.name[a]=#0) then b:=true else if b=false then
- user_first_name:=user_first_name+pcbsys.name[a] else user_last_name:=user_last_name+pcbsys.name[a];
- readln(f,s); val(s,i,code); baud_rate:=i;
- readln(f,s); val(s,i,code); com_port:=i;
- readln(f,s); val(s,i,code); user_access_level:=i;
- readln(f,s); s:=stu(s); if s='TRUE' then local:=true else local:=false;
- readln(f,s);
- readln(f,s); val(s,i,code); bbs_time_left:=i;
- readln(f,s);
- if s='TRUE' then graphics:=3 else graphics:=1;
- if s='TRUE' then color_chg:=true else color_chg:=false;
- readln(f,s);
- close(f);
- end;
-
- procedure load_WWIV;
- var
- a: integer;
- b: boolean;
- f : text;
- ss,s : string;
- code,i: integer;
- sint: word;
-
- begin;
- assign(f,dropfilepath+'chain.txt');
- writeln('Opening file "Chain.txt"');
- {$I-}
- reset(f);
- {$I+}
- if ioresult<>0 then dderror('Error in opening "Chain.txt"');
- readln(f,s);
- readln(f,s);
- user_first_name:='';
- user_last_name:='';
- b:=false;
- for a:=1 to length(s) do if s[a]=' ' then b:=true else if b then
- user_last_name:=user_last_name+s[a] else user_first_name:=user_first_name+s[a];
- for i:=1 to 9 do begin;
- readln(f,s);
- end;
- val(s,sint,code);
- user_access_level:=sint;
- readln(f,s);
- readln(f,s);
- readln(f,s);
- if s<>'0' then begin graphics:=3;color_chg:=true; end else begin;
- graphics:=1;
- color_chg:=false;
- end;
- readln(f,s);
- if s<>'0' then local:=false else local:=true;
- readln(f,s);
- while (s<>'') and (s[1]=' ') do delete(s,1,1);
- delete(s,length(s)-3,3);
- val(s,sint,code);
- bbs_time_left:=sint div 60;
- readln(f,s);
- readln(f,s);
- readln(f,s);
- readln(f,s);
- val(s,baud_rate,code);
- readln(f,s);
- val(s,sint,code);
- com_port:=sint;
- readln(f,s);
- board_name:=s;
- readln(f,s);
- sysop_first_name:='';
- sysop_last_name:='';
- b:=false;
- for a:=1 to length(s) do if s[a]=' ' then b:=true else if b then
- sysop_last_name:=sysop_last_name+s[a] else sysop_first_name:=sysop_first_name+s[a];
- close(f);
- end;
-
- procedure load_doorsys;
- var
- b: boolean;
- a: integer;
- f: text;
- s: string;
- begin;
- writeln('Opening "DOOR.SYS".');
- assign(f,dropfilepath+'DOOR.SYS');
- {$I-}
- reset(F);
- {$I+}
- if ioresult<>0 then dderror('Cannot load DOOR.SYS');
-
- readln(f,s); {Com Port}
- delete(s,1,3);
- delete(s,2,1);
- val(s,com_port,a);
- if com_port=0 then local:=true else local:=false;
-
- readln(f,s); { remote baud rate}
- readln(f,s); {dbits}
- readln(f,s); {node num}
-
- readln(f,s); {actual internal bbs}
- val(s,baud_rate,a);
- readln(f,s); {screen on}
- readln(f,s); {printer}
- readln(f,s); {page bell}
- readln(f,s); {caller bell}
-
- readln(f,s); {user name}
- s:=stu(s);
- b:=false;
- user_first_name:='';
- user_last_name:='';
- for a:=1 to length(s) do if s[a]=' ' then b:=true else if b then
- user_last_name:=user_last_name+upcase(s[a]) else user_first_name:=user_first_name+upcase(s[a]);
-
- readln(f,s); {city,state}
- readln(f,s); {home phone}
- readln(f,s); {work phone}
- readln(f,s); {password}
-
- readln(f,s); {security}
- val(s,user_access_level,a);
-
- readln(f,s); {times on}
- readln(f,s); {last called}
- readln(f,s); {secs left}
-
- readln(f,s); {time left}
- val(s,bbs_time_left,a);
-
- readln(f,s); {graphics code}
- if s='GR' then graphics:=3
- else
- if s='RIP' then graphics:=5
- else graphics:=1;
-
- close(f);
- end;
-
- procedure load_spitfire;
- var
- b: boolean;
- a: integer;
- f: text;
- s: string;
- begin;
- writeln('Opening "SFDOORS.DAT".');
- assign(f,dropfilepath+'SFDOORS.DAT');
- {$I-}
- reset(F);
- {$I+}
- if ioresult<>0 then dderror('Cannot load SFDOORS.DAT');
-
- readln(f,s);
- readln(f,s); {name}
- s:=stu(s);
- b:=false;
- user_first_name:='';
- user_last_name:='';
- for a:=1 to length(s) do if s[a]=' ' then b:=true else if b then
- user_last_name:=user_last_name+upcase(s[a]) else user_first_name:=user_first_name+upcase(s[a]);
-
- readln(f,s);
- readln(f,s);
- readln(f,s); {baud}
- val(s,baud_rate,a);
- if baud_rate=0 then local:=true else local:=false;
-
- readln(f,s); {cport}
- val(s,com_port,a);
- if com_port=0 then local:=true else local:=false;
-
- readln(f,s); {time left}
- val(s,bbs_time_left,a);
-
- readln(f,s);
- readln(f,s);
- readln(f,s); {ansi}
- if stu(s)='TRUE' then graphics:=3 else graphics:=1;
-
- readln(f,s); {sec}
- val(s,user_access_level,a);
-
- close(f);
- end;
-
- procedure Load_2am;
- var
- f: text;
- s,s2: string;
- a: integer;
- begin;
- local:=false;
- user_access_level:=0;
- writeln('Opening JUMPER.DAT');
- assign(f,dropfilepath+'JUMPER.DAT');
- {$I-}
- reset(F);
- {$I+}
- if ioresult<>0 then dderror('Cannot open JUMPER.DAT');
- readln(f,s);
- readln(f,s);
- readln(f,s);
- readln(f,s);
-
- readln(f,s);
- user_first_name:=s;
- readln(f,s);
- user_last_name:=s;
-
- readln(f,s);
-
- readln(f,s);
- val(s,bbs_time_left,a);
- readln(f,s);
- val(s,com_port,a);
- if com_port=0 then local:=true;
- readln(f,s);
- val(s,baud_rate,a);
- if baud_rate=0 then local:=true;
-
- readln(f,s);
- readln(f,s);
- readln(f,s);
- readln(f,s);
-
- readln(f,s);
- readln(f,s2);
- graphics:=1;
- if (s='TRUE') and (s2='FALSE') then graphics:=2;
- if (s2='TRUE') then graphics:=3;
- close(f);
- end;
-
- procedure Load_TriBBS;
- var
- b: boolean;
- a: integer;
- f: text;
- s,s2: string;
- begin;
- local:=false;
- user_access_level:=0;
- writeln('Opening TRIBBS.SYS');
- assign(f,dropfilepath+'TRIBBS.SYS');
- {$I-}
- reset(F);
- {$I+}
- if ioresult<>0 then dderror('Cannot open TRIBBS.SYS');
- readln(f,s);
- readln(f,s); {user name}
- s:=stu(s);
- b:=false;
- user_first_name:='';
- user_last_name:='';
- for a:=1 to length(s) do if s[a]=' ' then b:=true else if b then
- user_last_name:=user_last_name+upcase(s[a]) else user_first_name:=user_first_name+upcase(s[a]);
- readln(f,s); {password }
- readln(f,s); {security}
- readln(f,s); {help lev}
- readln(f,s); {graphics}
- If s = 'Y' then
- graphics := 3
- else
- graphics := 1;
-
- readln(f,s); {minutes left}
- val(s,bbs_time_left,a);
-
- readln(f,s); {phonenumber}
- readln(f,s); {citystate }
- readln(f,s); {birthdate }
- readln(f,s); {nodenumber }
- val(s,node_num,a);
- readln(f,s); {comportno }
- val(s,com_port,a);
- if com_port=0 then local:=true;
-
- readln(f,s); {modembaud rate }
- val(s,baud_rate,a);
- if baud_rate=0 then local:=true;
- readln(f,s); {baud rate }
- val(s,baud_rate,a);
- lockbaud := baud_rate;
- if baud_rate=0 then local:=true;
- close(f);
- end;
-
- procedure load_local;
- var
- a,b: integer;
- d: boolean;
- s: string;
- begin;
- val(paramstr(1),a,b);
- if a>0 then node_num:=a;
- local:=true;
- writeln;
- writeln('┌───────────────────────────────┐');
- writeln('│ Local Logon │');
- writeln('└───────────────────────────────┘');
- writeln;
- writeln('Please enter your name below (or leave blank for '+sysop_first_name+' '+sysop_last_name+'):');
- write('>');
- readln(s);
- if s='' then begin;
- user_first_name:=stu(sysop_first_name);
- user_last_name:=stu(sysop_last_name);
- end else begin;
- user_first_name:='';
- user_last_name:='';
- d:=false;
- for a:=1 to length(s) do if s[a]=' ' then d:=true else if d=false then
- user_first_name:=user_first_name+upcase(s[a])
- else
- user_last_name:=user_last_name+upcase(s[a]);
- if user_last_name='' then begin;
- writeln('Please enter your last name:');
- write('>');
- readln(user_last_name);
- user_last_name:=stu(user_last_name);
- end;
- end;
- graphics:=3;
- bbs_time_left:=120;
- user_access_level:=255;
- end;
-
- procedure load_maint;
- begin;
- local:=true;
- user_first_name:='SYSTEM';
- user_last_name:='MAINTENANCE';
- bbs_time_left:=120;
- graphics:=3;
- end;
-
- begin;
- baud_rate:=0;
- if bbstype=0 then load_maint;
- if bbstype=1 then load_local;
- if bbstype=3 then load_rbbs16;
- if bbstype=4 then load_pcboard;
- if bbstype=5 then load_WWIV;
- if bbstype=6 then load_pcboard14;
- if bbstype=7 then load_rbbs16;
- if bbstype=8 then load_phnx;
- if bbstype=9 then load_rbbs16;
- if bbstype=10 then load_pcboard14;
- if bbstype=11 then load_doorsys;
- if bbstype=12 then load_spitfire;
- if bbstype=13 then load_2am;
- if bbstype=14 then load_TriBBS;
- user_first_name:=stu(user_first_name);
- user_last_name:=stu(user_last_name);
- {if node_num=0 then node_num:=1; }
- if graphics>=3 then color_chg:=true else color_chg:=false;
- if bbs_time_left>maxtime then bbs_time_left:=maxtime;
- end;
-
- function wva(w: word): string;
- var
- s: string;
- begin;
- str(w,s);
- wva:=s;
- end;
-
- procedure stuffstr(n: word; s: string);
- begin;
- getmem(ddovrinfo[n],length(s)+1);
- move(s,ddovrinfo[n]^,length(s)+1);
- end;
-
- procedure MakeInfoStrings(
- bbstype: word;
- var user_first_name,user_last_name: string;
- var user_access_level: word;
- var bbs_time_left: integer;
- var com_port: byte;
- var baud_rate,baud_modem: longint;
- var node_num: byte;
- var local: boolean;
- var graphics: byte;
- var color1: boolean;
- var color_chg: boolean;
- var board_name: string;
- var sysop_first_name: string;
- var sysop_last_name: string;
- var maxtime: word;
- var dropfilepath: string;
- var lockbaud: longint);
-
- const
- software_names: array[0..14] of string[15]=
- ('Maint', 'Local', 'Sysop', 'QBBS', 'PCBoard 12',
- 'WWIV', 'PCBoard 15', 'RBBS 16+', 'Phoenix', 'DORINFO1',
- 'PCBoard 14','DOORSYS', 'Spitfire', '2am-bbs', 'TriBBS');
- drop_files: array[0..14] of string[15]=
- ('n/a', 'n/a', 'n/a', 'DORINFOx.DEF',
- 'PCBOARD.SYS','CHAIN.TXT','PCBOARD.SYS', 'DORINFOx.DEF',
- 'INFO.BBS', 'DORINFO1.DEF','PCBOARD.SYS', 'DOOR.SYS',
- 'SFDOORS.DAT','JUMPER.DAT','TRIBBS.SYS');
- istrue: array[false..true] of string[8] = ('FALSE','TRUE');
- var
- s: string;
- a: integer;
- begin;
- stuffstr( 1,'Baud rate: '+wva(baud_rate));
- stuffstr( 2,' Local: '+istrue[local]);
- stuffstr( 3,' Graphics: '+wva(graphics));
- stuffstr( 4,'Time left: '+wva(bbs_time_left));
- stuffstr( 5,' Com Port: '+wva(com_port));
- stuffstr( 6,' User: '+user_first_name+' '+user_last_name);
- stuffstr( 7,'Access lv: '+wva(user_access_level));
- stuffstr( 8,' Node num: '+wva(node_num));
- if lockbaud=0 then s:='Not Locked' else s:=wva(lockbaud);
- stuffstr( 9,'Lock Baud: '+s);
- stuffstr( 10,' Software: '+software_names[bbstype]);
- s:=drop_files[bbstype];
- for a:=1 to length(s) do if s[a]='x' then s[a]:=chr(node_num+ord('0'));
- stuffstr(11,'Drop file: '+s);
- stuffstr(12,'Drop Path: '+dropfilepath);
- end;
-
- {
- /E - Use ESM for extra memory');
- /L - Local mode');
- /Bxxx - Specify locked baud rate (i.e. /B38400)');
- /C - Specify comport number.
- /F - Specify maintenance type 1.
- /H - Specify maintenance type 2.
- /Nx - Specify node number');
- /R - Force RIP graphics');
- /Pyyy - Specify path to drop file (i.e. /Pc:\bbs');
-
- }
-
- end.